realtek: pcs: switch to id from SerDes struct
authorJonas Jelonek <[email protected]>
Sat, 13 Dec 2025 20:01:03 +0000 (20:01 +0000)
committerRobert Marko <[email protected]>
Tue, 16 Dec 2025 12:37:32 +0000 (13:37 +0100)
Drop usage of the to-be-phased-out SerDes id stored in rtpcs_link and
use the reference to the SerDes instance to use the embedded id in
rtpcs_serdes instead.

Signed-off-by: Jonas Jelonek <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <[email protected]>
target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c

index 01b4b3af623c6766d2f8f964de0b85fe2b950714..d2a70e65e4196f3b118367353c2bf5c3a21cd60d 100644 (file)
@@ -153,7 +153,6 @@ struct rtpcs_link {
        struct rtpcs_ctrl *ctrl;
        struct phylink_pcs pcs;
        struct rtpcs_serdes *sds;
-       int sds_id;
        int port;
 };
 
@@ -2920,7 +2919,7 @@ static void rtpcs_pcs_an_restart(struct phylink_pcs *pcs)
        struct rtpcs_ctrl *ctrl = link->ctrl;
 
        dev_warn(ctrl->dev, "an_restart() for port %d and sds %d not yet implemented\n",
-                link->port, link->sds_id);
+                link->port, link->sds->id);
 }
 
 static int rtpcs_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode,
@@ -2931,7 +2930,7 @@ static int rtpcs_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode,
        struct rtpcs_ctrl *ctrl = link->ctrl;
        int ret = 0;
 
-       if (link->sds_id < 0)
+       if (link->sds->id < 0)
                return 0;
 
        /*
@@ -2941,18 +2940,18 @@ static int rtpcs_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode,
         */
 
        dev_warn(ctrl->dev, "pcs_config(%s) for port %d and sds %d not yet fully implemented\n",
-                phy_modes(interface), link->port, link->sds_id);
+                phy_modes(interface), link->port, link->sds->id);
 
        mutex_lock(&ctrl->lock);
 
        if (ctrl->cfg->setup_serdes) {
-               ret = ctrl->cfg->setup_serdes(ctrl, link->sds_id, interface);
+               ret = ctrl->cfg->setup_serdes(ctrl, link->sds->id, interface);
                if (ret < 0)
                        goto out;
        }
 
        if (ctrl->cfg->set_autoneg) {
-               ret = ctrl->cfg->set_autoneg(ctrl, link->sds_id, neg_mode);
+               ret = ctrl->cfg->set_autoneg(ctrl, link->sds->id, neg_mode);
                if (ret < 0)
                        goto out;
        }
@@ -3016,7 +3015,6 @@ struct phylink_pcs *rtpcs_create(struct device *dev, struct device_node *np, int
        link->ctrl = ctrl;
        link->port = port;
        link->sds = &ctrl->serdes[sds_id];
-       link->sds_id = sds_id;
        link->pcs.ops = ctrl->cfg->pcs_ops;
        link->pcs.neg_mode = true;